ServiceSample.cs [C#]

[C#]
    
   //Get list of group for specific manager filtered by name 
   public ErrorType GetGroupByName(out List<View_Group> filteredList, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Group>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of group for specific manager 
           List<View_Group> listResult; 
           result = client.GetGroup(out listResult, manager.BoxId ?? 0, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //listFilterGroup = (from l1 in listGroup where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of profiles for specific manager filtered by name 
   public ErrorType GetPlayerProfileByName(out List<PlayerProfil> filteredList, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<PlayerProfil>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of profiles for specific manager 
           List<PlayerProfil> listResult; 
           result = client.GetPlayerProfil(out listResult, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of players for specific manager filtered by name 
   public ErrorType GetPlayerByName(out List<View_Player> filteredList, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Player>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of players for specific manager 
           List<View_Player> listResult; 
           result = client.GetPlayer(out listResult, manager.BoxId ?? 0, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of players for specific manager filtered in server (by all players properties, ex: ip connection etc..) 
   public ErrorType GetPlayerByFilter(out List<View_Player> filteredList, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Player>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of filtered players for specific manager 
           result = client.GetFilteredPlayer(out filteredList, filter, manager.Id, sessionId); 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of players monitoring for specific manager filtered by name 
   public ErrorType GetMonitoringByName(out List<View_StatusM> filteredList, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_StatusM>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of players monitoring for specific manager 
           List<View_StatusM> listResult; 
           long lastMonitoring = 0; 
           result = client.GetPlayerStatus(out listResult, ref lastMonitoring, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.PlayerName.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of folders for specific group filtered by name 
   public ErrorType GetFolderByName(out List<View_Folder> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Folder>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of folders for specific group 
           List<View_Folder> listResult; 
           result = client.GetFolder(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of medias for specific group filtered by name 
   public ErrorType GetMediaByName(out List<View_Media> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Media>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of medias for specific group 
           List<View_Media> listResult; 
           result = client.GetMedia(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of media triggers for specific manager filtered by name 
   public ErrorType GetTriggerByName(out List<View_Media> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Media>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of medias for specific group 
           List<View_Media> listResult; 
           result = client.GetMedia(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.FolderId < 0 && l1.Name.Contains(filter) select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of templates for specific group filtered by name 
   public ErrorType GetTemplateByName(out List<View_Template> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Template>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of templates for specific group 
           List<View_Template> listResult; 
           result = client.GetTemplate(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of ticker for specific group filtered by name 
   public ErrorType GetTickerByName(out List<View_Banner> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<View_Banner>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of ticker for specific group 
           List<View_Banner> listResult; 
           result = client.GetBanner(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of playlist for specific group and specific manager 
   public ErrorType GetPlaylist(out List<View_Playlist> listResult, List<long> listGroupId, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       listResult = new List<View_Playlist>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of playlist for specific group and specific manager 
           result = client.GetPlaylist(out listResult, listGroupId, manager.Id, sessionId); 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Get list of xml medias for specific group filtered by name 
   public ErrorType GetXMLMediaByName(out List<XMLMedia> filteredList, long groupId, string filter, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       filteredList = new List<XMLMedia>(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of xml medias for specific group 
           List<XMLMedia> listResult; 
           result = client.GetXMLMedia(out listResult, groupId, manager.Id, sessionId); 
  
           if (result == ErrorType.GOOD) 
           { 
               //Filter the result with linq 
               filteredList = (from l1 in listResult where l1.Name.Contains(filter) select l1).ToList(); 
  
               //For filter by id 
               //filteredList = (from l1 in listResult where l1.Id == Id select l1).ToList(); 
           } 
       } 
  
       return result; 
   } 


 

[C#]
    
   //Check login and retrive connection session 
   private string GetSessionId(out string sessionId, out View_Manager manager, string login = "", string password = "") 
   { 
       //Encrypt the password 
       string passswordEncrypt = GetPasswordEncrypt(password, GlobalParam.SERVER_KEY); 
  
       //Check login and retrive connection session 
       long serverDate; 
       ErrorType result = client.CheckLoginSDK(out sessionId, out manager, out serverDate, login, passswordEncrypt); 
  
       return GetErrorBySessionId(sessionId, manager, result); 
   } 


 

[C#]
    
   //Get error result by session id 
   private static string GetErrorBySessionId(string sessionId, View_Manager manager, ErrorType result) 
   { 
       if (result == ErrorType.GOOD) 
       { 
           //Result Error 
           switch (sessionId) 
           { 
               case "0": return "Wrong login or password"; 
               case "-1": return "Account Expired"; 
               case "-2": return "Connection not allowed"; 
               case "-3": return "Server error"; 
               case "-4": return "Error, Please try again"; 
               case "-5": return "Error, Please try again"; 
               case "-6": return "Connection not allowed"; 
               case "-7": return "Installation not completed"; 
           } 
           if (manager != null) 
           { 
               return "ok"; 
           } 
       } 
       else 
       { 
           switch (result) 
           { 
               case ErrorType.CONNECTION_ERROR: return "Connection error"; 
               case ErrorType.DISCONNECTED: return "Manager disconnected"; 
               case ErrorType.MANAGEREXIST: return "Can not create manager because this name as already used"; 
               case ErrorType.NOT_POSSIBLE: return "This action is not possible"; 
               case ErrorType.PLAYERINGROUP: return "Can not delete this group because one or more player have in this group"; 
           } 
       } 
  
       return "General error"; 
   } 


 

[C#]
    
   //Encrypt password 
   public string GetPasswordEncrypt(string password, string serialNumber) 
   { 
       byte[] hash = GetHashKey(serialNumber); 
       string passwordEncrypt = Encrypt(hash, password); 
       return passwordEncrypt; 
   } 


 

[C#]
    
   //Get encryption key 
   private byte[] GetHashKey(string hashKey) 
   { 
       // Initialise 
       UTF8Encoding encoder = new UTF8Encoding(); 
  
       // Get the salt 
       string salt = "fCycS3qSKsUlNz7wCb39XckN"; 
       byte[] saltBytes = encoder.GetBytes(salt); 
  
       // Setup the hasher 
       Rfc2898DeriveBytes rfc = new Rfc2898DeriveBytes(hashKey, saltBytes); 
  
       // Return the key 
       return rfc.GetBytes(16); 
   } 


 

[C#]
    
   //Encrypt data by AES 
   private string Encrypt(byte[] key, string dataToEncrypt) 
   { 
       // Initialise 
       AesManaged encryptor = new AesManaged(); 
  
       // Set the key 
       encryptor.Key = key; 
       encryptor.IV = key; 
  
       // create a memory stream 
       using (MemoryStream encryptionStream = new MemoryStream()) 
       { 
           // Create the crypto stream 
           using (CryptoStream encrypt = new CryptoStream(encryptionStream, encryptor.CreateEncryptor(), CryptoStreamMode.Write)) 
           { 
               // Encrypt 
               byte[] utfD1 = UTF8Encoding.UTF8.GetBytes(dataToEncrypt); 
               encrypt.Write(utfD1, 0, utfD1.Length); 
               encrypt.FlushFinalBlock(); 
               encrypt.Close(); 
  
               // Return the encrypted data 
               return Convert.ToBase64String(encryptionStream.ToArray()); 
           } 
       } 
   } 


 

[C#]
    
   //Delete Media 
   public ErrorType DeleteMedia (View_Media media, long groupId, string login = "", string password = "") 
   { 
       //Initialize the return value(s) 
       ErrorType result = ErrorType.CONNECTION_ERROR; 
       //media = new View_Media(); 
  
       //Check user connection 
       if ((manager != null && sessionId != "" && login == "" && password == "") //Already connected 
           || "ok" == GetSessionId(out sessionId, out manager, login, password)) //Get Manager connection data 
       { 
           //Get list of medias for specific group 
           result = client.DeleteMedia(ref media, groupId, null, manager.Id, sessionId); 
       } 
  
       return result; 
   }